package Negocio;

import java.io.Serializable;
import java.rmi.RemoteException;
import java.util.Calendar;
import java.util.Date;
import java.util.List;

import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;

import Controller.Controller;


@Entity
@DiscriminatorValue(value="ViajeInterSucursal")
public class ViajeInterSucursal extends Viaje implements Serializable {
	/**
	 * 
	 */
	private static final long serialVersionUID = 2335553783190169310L;
	@ManyToOne
	@JoinColumn(name="sucursal_origen_id")
	private Sucursal sucursalOrigen;
	@ManyToOne
	@JoinColumn(name="sucursal_destino_id")
	private Sucursal sucursalDestino;
	
	public ViajeInterSucursal(Sucursal sucursalOrigen, Sucursal sucursalDestino) {
		super();
		this.sucursalOrigen = sucursalOrigen;
		this.sucursalDestino = sucursalDestino;
	}

	public ViajeInterSucursal() {
		super();
	}

	public ViajeInterSucursal(Sucursal sucursalOrigen, Sucursal sucursalDestino, Vehiculo vehiculo, List<Envio> estosEnvios) throws RemoteException, Exception {
		this.envios= estosEnvios;
		this.sucursalOrigen = sucursalOrigen;
		this.sucursalDestino = sucursalDestino;
		this.vehiculo=vehiculo;
		this.fechaCreacion=Calendar.getInstance().getTime();
		 Calendar cal = Calendar.getInstance(); // creates calendar
		    cal.setTime(new Date()); // sets calendar time/date
		    cal.add(Calendar.HOUR_OF_DAY, (int) Controller.getInstance().getTiempoViaje(sucursalOrigen.getNombre(), sucursalDestino.getNombre()));
		    this.fechaEstimadaDeLLegada = cal.getTime(); // returns new date object, one hour in the future
	}

	public Sucursal getSucursalOrigen() {
		return sucursalOrigen;
	}

	public void setSucursalOrigen(Sucursal sucursalOrigen) {
		this.sucursalOrigen = sucursalOrigen;
	}

	public Sucursal getSucursalDestino() {
		return sucursalDestino;
	}

	public void setSucursalDestino(Sucursal sucursalDestino) {
		this.sucursalDestino = sucursalDestino;
	}
	
	
	
	

}
